function fetchElement($name, $value, &$node, $control_name) { $js = "onclick=\"setAllCheckBoxes('details[hidden]', this.checked);\""; $chk = $value == '1' ? ' checked="checked"' : ''; $fullName = ElementHelper::getFullName($this, $control_name, $name); return "<input {$js} id=\"{$control_name}{$name}\" type=\"checkbox\" name=\"" . $fullName . "\" value=\"1\" {$chk} />"; }
function fetchElement($name, $value, &$node, $control_name) { $fullName = ElementHelper::getFullName($this, $control_name, $name); $opts[] = JHTML::_('select.option', "ASC", JText::_('ASCENDING')); $opts[] = JHTML::_('select.option', "DESC", JText::_('DESCENDING')); return JHTML::_('select.genericlist', $opts, $fullName, 'class="inputbox" size="1"', 'value', 'text', $value); }
/** * Returns the element's full URL. * * @return string */ public function getUrl() { if ($this->uri === null) { ElementHelper::setUniqueUri($this); } return parent::getUrl(); }
public function safeUp() { //First get all option types and values and make dropdown fields $alloptionTypes = craft()->db->createCommand()->select('*')->from('market_optiontypes')->queryAll(); $fields = []; foreach ($alloptionTypes as $optionType) { // Need to know if the field name is already taken $exists = craft()->fields->getFieldByHandle(ElementHelper::createSlug($optionType['handle'])); //make a new field name is field name already taken if ($exists && $exists->id) { $optionType['handle'] = $optionType['handle'] . " option"; } //Make a new field $field = new FieldModel(); $field->groupId = 1; $field->context = 'global'; $field->name = $optionType['name']; $field->handle = ElementHelper::createSlug($optionType['handle']); $field->type = "Dropdown"; // Add the values $optionValues = craft()->db->createCommand()->select('*')->from('market_optionvalues')->where('optionTypeId=:id', [':id' => $optionType['id']])->queryAll(); $options = []; foreach ($optionValues as $ov) { $value = ['label' => $ov['displayName'], 'value' => $ov['name']]; $options['options'][] = $value; } $field->settings = $options; //save the field craft()->fields->saveField($field); $fields[] = $field; } return true; }
function fetchElement($name, $value, &$node, $control_name) { $id = ElementHelper::getId($this, $control_name, $name); $fullName = ElementHelper::getFullName($this, $control_name, $name); $iframeid = $id . '_iframe'; $cid = JRequest::getVar('cid', array(), 'array'); // $$$ hugh - when creating a new form, no 'cid' ... not sure what to do, so just set it to 0. Should // prolly just return something like 'available after save' ? if (!empty($cid)) { $cid = (int) $cid[0]; } else { $cid = 0; } $c = (int) $this->getRepeatCounter(); $href = COM_FABRIK_LIVESITE . 'index.php?option=com_fabrik&controller=plugin&task=pluginAjax&plugin=fabriktwitter&g=form&method=authenticateAdmin&tmpl=component&formid=' . $cid . '&repeatCounter=' . $c; $clearjs = '$(\'paramstwitter_oauth_token-' . $c . '\').value = \'\';'; $clearjs .= '$(\'paramstwitter_oauth_token_secret-' . $c . '\').value = \'\';'; $clearjs .= '$(\'paramstwitter_oauth_user-' . $c . '\').value = \'\';'; $clearjs .= "return false;"; $js = "window.open('{$href}', 'twitterwins', 'width=800,height=460,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;"; $str = '<a href="#" onclick="' . $js . '"><img src="' . COM_FABRIK_LIVESITE . 'components/com_fabrik/libs/abraham-twitteroauth/images/lighter.png" alt="Sign in with Twitter"/></a>'; $str .= " | <a href=\"#\" onclick=\"{$clearjs}\">" . JText::_('PLG_FORM_TWITTER_CLEAR_CREDENTIALS') . "</a><br/>"; $str .= "<br /><input type=\"text\" readonly=\"readonly\" name=\"{$fullName}\" id=\"{$id}\" value=\"{$value}\" />"; return $str; }
function fetchElement($name, $value, &$node, $control_name) { jimport('joomla.filesystem.folder'); // path to images directory $path = JPATH_ROOT . DS . $node->attributes('directory'); $filter = $node->attributes('filter'); $exclude = $node->attributes('exclude'); $recursive = $node->attributes('recursive') == 1 ? true : false; $folders = JFolder::folders($path, $filter, $recursive); $folders = $this->recursive_listdir($path, $node); $options = array(); foreach ($folders as $key => $folder) { if ($exclude) { if (preg_match(chr(1) . $exclude . chr(1), $folder)) { continue; } } $options[] = JHTML::_('select.option', $key, $folder); } if (!$node->attributes('hide_none')) { array_unshift($options, JHTML::_('select.option', '-1', '- ' . JText::_('Do not use') . ' -')); } if (!$node->attributes('hide_default')) { array_unshift($options, JHTML::_('select.option', '', '- ' . JText::_('Use default') . ' -')); } $fullName = ElementHelper::getFullName($this, $control_name, $name); return JHTML::_('select.genericlist', $options, $fullName, 'class="inputbox"', 'value', 'text', $value, "params{$name}"); }
function fetchElement($name, $value, &$node, $control_name) { if ($value == '0' || $value == '') { $value = '255'; } $fullName = ElementHelper::getFullName($this, $control_name, $name); return "<input onblur=\"setAll(this.value, '{$fullName}');\" class=\"inputbox\" type=\"text\" name=\"{$fullName}\" size=\"3\" value=\"{$value}\" />"; }
public function render($params = array()) { $countries = $this->_data->get('country', array()); $keys = array_flip($countries); $countries = array_intersect_key(self::getCountryArray(), $keys); $countries = array_map(create_function('$a', 'return JText::_($a);'), $countries); return ElementHelper::applySeparators($params['separated_by'], $countries); }
public function render($params = array()) { $linked = isset($params['linked']) && $params['linked']; $values = array(); foreach ($this->_item->getRelatedCategories(true) as $category) { $values[] = $linked ? '<a href="' . JRoute::_(RouteHelper::getCategoryRoute($category)) . '">' . $category->name . '</a>' : $category->name; } return ElementHelper::applySeparators($params['separated_by'], $values); }
function fetchElement($name, $value, &$node, $control_name) { if ($value == '') { $user = JFactory::getUser(); $value = $user->get('id'); } $fullName = ElementHelper::getFullName($this, $control_name, $name); return JHTML::_('list.users', $fullName, $value); }
function fetchElement($name, $value, &$node, $control_name) { $db =& JFactory::getDBO(); $db->setQuery("SELECT id AS value, label AS `text` FROM #__fabrik_forms order by value DESC"); $rows = $db->loadObjectList(); $id = ElementHelper::getId($this, $control_name, $name); $fullName = ElementHelper::getFullName($this, $control_name, $name); return JHTML::_('select.genericlist', $rows, $fullName, 'class="inputbox" size="1"', 'value', 'text', $value); }
public function render($params = array()) { $category_ids = $this->_data->get('category', array()); $category_links = array(); $categories = YTable::getInstance('category')->getById($category_ids, true); foreach ($categories as $category) { $category_links[] = '<a href="' . RouteHelper::getCategoryRoute($category) . '">' . $category->name . '</a>'; } return ElementHelper::applySeparators($params['separated_by'], $category_links); }
function fetchElement($name, $value, &$node, $control_name) { require_once COM_FABRIK_FRONTEND . DS . 'helpers' . DS . 'image.php'; $imageLibs = imageHelper::getLibs(); if (empty($imageLibs)) { return JText::_('NO MAGE LIBRARY FOUND'); } $fullName = ElementHelper::getFullName($this, $control_name, $name); return JHTML::_('select.genericlist', $imageLibs, $fullName, 'class="inputbox" size="1" ', 'value', 'text', $value); }
function fetchElement($name, $value, &$node, $control_name) { $a = array(JHTML::_('select.option', '', JText::_('COM_FABRIK_PLEASE_SELECT'))); $db =& JFactory::getDBO(); $group = $node->attributes('plugin'); $db->setQuery("SELECT id AS value, label AS text FROM #__fabrik_visualizations WHERE state ='1' ORDER BY text"); $elementstypes = $db->loadObjectList(); $elementstypes = array_merge($a, $elementstypes); $fullName = ElementHelper::getFullName($this, $control_name, $name); return JHTML::_('select.genericlist', $elementstypes, $fullName, 'class="inputbox elementtype" size="1"', 'value', 'text', $value); }
public function render($params = array()) { $options_from_config = $this->_config->get('options'); $selected_options = $this->_data->get('option', array()); $options = array(); foreach ($options_from_config as $option) { if (in_array($option['value'], $selected_options)) { $options[] = $option['name']; } } return ElementHelper::applySeparators($params['separated_by'], $options); }
/** * Uses the matched headers to create an anchor for them * * @param array $matches * * @return string */ public function handleMatch(array $matches = array()) { $tag = $matches['tag']; $text = $matches['text']; $slug = ElementHelper::createSlug($text); $clean = strip_tags($text); $currentHeaderLevel = (int) substr($tag, 1, 1); if ($this->startingHeaderLevel) { $tag = sprintf('h%s', min(6, $currentHeaderLevel + ($this->startingHeaderLevel - 1))); } return "<{$tag} id=\"{$slug}\">{$text} <a class=\"anchor\" href=\"#{$slug}\" title=\"{$clean}\">#</a></{$tag}>"; }
function fetchElement($name, $value, &$node, $control_name) { $version = new JVersion(); if ($version->RELEASE == '1.6') { $acl =& JFactory::getACL(); // @TODO for Joomla 1.6 $gtree = JHTML::_('select.option', "-2", 'TODO FOR JOOMLA 1.6'); return JHTML::_('select.genericlist', array($gtree), $control_name . '[' . $name . ']', 'class="inputbox" size="1"', 'value', 'text', $value); } else { if (defined('_JACL')) { $_JACL =& JACLPlus::getJACL(); $where = "\n WHERE id IN (0,1,2)"; $db =& JFactory::getDBO(); if ($_JACL->enable_jaclplus) { $user =& JFactory::getUser(); if (is_numeric($value)) { $where = " OR id = '" . (int) $value . "'"; } else { $where = ""; } switch ($_JACL->publish_alstype) { case "1": $where = $user->get('gid') == 25 ? "" : "\n WHERE id IN (" . $user->get('jaclplus', '0') . ")" . $where; break; case "2": $where = $user->get('gid') == 25 ? "" : "\n WHERE id NOT IN (0,1,2)" . $where; break; case "3": $where = $user->get('gid') == 25 ? "" : "\n WHERE id IN (" . $user->get('jaclplus', '0') . ") AND id NOT IN (0,1,2)" . $where; break; case "4": $where = $user->get('gid') == 25 ? "" : "\n WHERE id IN (" . $db->getEscaped($_JACL->publish_jaclplus) . ")" . $where; break; case "0": default: $where = ""; break; } } $query = 'SELECT id AS value, name AS text' . ' FROM #__groups' . $where . ' ORDER BY id'; $db->setQuery($query); $gtree = $db->loadObjectList(); } else { $acl =& JFactory::getACL(); $gtree = $acl->get_group_children_tree(null, 'USERS', false); $optAll = array(JHTML::_('select.option', '0', ' - Everyone'), JHTML::_('select.option', "26", 'Nobody')); $gtree = array_merge($optAll, $gtree); } $fullName = ElementHelper::getFullName($this, $control_name, $name); $id = ElementHelper::getId($this, $control_name, $name); return JHTML::_('select.genericlist', $gtree, $fullName, 'class="inputbox fullaccesslevel" size="1"', 'value', 'text', $value, $id); } }
function fetchElement($name, $value, &$node, $control_name) { $app =& JFactory::getApplication(); if ($value == '') { $value = $app->getUserStateFromRequest('com_fabrik.element.list.filter_groupId', 'filter_groupId', $value); } $db =& JFactory::getDBO(); $db->setQuery("SELECT id AS value, name AS `group_id` FROM #__fabrik_groups ORDER BY name"); $select = JHTML::_('select.option', '', JText::_('COM_FABRIK_PLEASE_SELECT'), 'value', 'group_id'); $rows = array_merge(array($select), $db->loadObjectList()); $fullName = ElementHelper::getFullName($this, $control_name, $name); return JHTML::_('select.genericlist', $rows, $fullName, 'class="inputbox" size="1"', 'value', 'group_id', $value); }
function fetchTooltip($label, $description, &$xmlElement, $control_name = '', $name = '') { $id = ElementHelper::getId($this, $control_name, $name); $output = '<label id="' . $id . '-lbl" for="' . $id . '"'; if ($description) { $description = JText::_($description) . $this->getMax() . 'Kb'; $output .= ' class="hasTip" title="' . JText::_($label) . '::' . $description . '">'; } else { $output .= '>'; } $output .= JText::_($label) . '</label>'; return $output; }
public function render($params = array()) { $linked = isset($params['linked']) && $params['linked']; $values = array(); if ($linked) { foreach ($this->_item->getTags() as $tag) { $values[] = '<a href="' . JRoute::_(RouteHelper::getTagRoute($this->_item->application_id, $tag)) . '">' . $tag . '</a>'; } } else { $values = $this->_item->getTags(); } return ElementHelper::applySeparators($params['separated_by'], $values); }
function fetchElement($name, $value, &$node, $control_name) { $repeat = ElementHelper::getRepeat($this); $id = ElementHelper::getId($this, $control_name, $name); $fullName = ElementHelper::getFullName($this, $control_name, $name); //orig J stuff $rows = $node->attributes('rows'); $cols = $node->attributes('cols'); $class = $node->attributes('class') ? 'class="' . $node->attributes('class') . '"' : 'class="text_area"'; // convert <br /> tags so they are not visible when editing $value = str_replace('<br />', "\n", $value); return '<textarea name="' . $fullName . '" cols="' . $cols . '" rows="' . $rows . '" ' . $class . ' id="' . $id . '" >' . $value . '</textarea>'; }
/** * @param $object * @param $attribute * * @return null */ protected function validateAttribute($object, $attribute) { $urlFormat = $object->{$attribute}; if ($urlFormat) { // Remove any leading or trailing spaces/slashes $urlFormat = trim($urlFormat, '/ '); $object->{$attribute} = $urlFormat; if ($this->requireSlug) { if (!ElementHelper::doesUrlFormatHaveSlugTag($urlFormat)) { $this->addError($object, $attribute, Craft::t('{attribute} must contain “{slug}”')); } } } }
function fetchElement($name, $value, &$node, $control_name) { $db =& JFactory::getDBO(); $db->setQuery($node->attributes('query')); $key = $node->attributes('key_field') ? $node->attributes('key_field') : 'value'; $val = $node->attributes('value_field') ? $node->attributes('value_field') : $name; if ($node->attributes('add_select')) { $rows = array(JHTML::_('select.option', '', '- ' . JText::_('Do not use') . ' -', $key, $val)); $rows = array_merge($rows, $db->loadObjectList()); } else { $rows = $db->loadObjectList(); } $id = ElementHelper::getId($this, $control_name, $name); $fullName = ElementHelper::getFullName($this, $control_name, $name); return JHTML::_('select.genericlist', $rows, $fullName, 'class="inputbox"', $key, $val, $value, $id); }
function fetchElement($name, $value, &$node, $control_name) { $db =& JFactory::getDBO(); if ($value == '') { $db->setQuery("SELECT id FROM #__fabrik_connections WHERE `default` = 1"); $value = $db->loadResult(); } $db->setQuery("SELECT id AS value, description AS text FROM #__fabrik_connections WHERE state = '1'"); $cnns = array_merge(array(JHTML::_('select.option', '-1', JText::_('COM_FABRIK_PLEASE_SELECT'))), $db->loadObjectList()); $js = "onchange=\"" . $node->attributes('js') . "\""; $id = ElementHelper::getId($this, $control_name, $name); $fullName = ElementHelper::getFullName($this, $control_name, $name); $return = JHTML::_('select.genericlist', $cnns, '' . $fullName, 'class="inputbox" ' . $js, 'value', 'text', $value, $id); $return .= "<img style='margin-left:10px;display:none' id='" . $id . "_loader' src='components/com_fabrik/images/ajax-loader.gif' alt='" . JText::_('LOADING') . "' />"; return $return; }
function fetchElement($name, $value, &$node, $control_name) { $id = ElementHelper::getId($this, $control_name, $name); $fullName = ElementHelper::getFullName($this, $control_name, $name); //orig J stuff $size = $node->attributes('size') ? 'size="' . $node->attributes('size') . '"' : ''; $class = $node->attributes('class') ? 'class="' . $node->attributes('class') . '"' : 'class="text_area"'; /* * Required to avoid a cycle of encoding & * html_entity_decode was used in place of htmlspecialchars_decode because * htmlspecialchars_decode is not compatible with PHP 4 */ if (is_string($value)) { $value = htmlspecialchars(html_entity_decode($value, ENT_QUOTES), ENT_QUOTES); } return '<input type="text" name="' . $fullName . '" id="' . $id . '" value="' . $value . '" ' . $class . ' ' . $size . ' />'; }
function fetchElement($name, $value, &$node, $control_name) { static $fabrikelements; if (!isset($fabrikelements)) { $fabrikelements = array(); } FabrikHelperHTML::script('element.js', 'administrator/components/com_fabrik/elements/', true); $document =& JFactory::getDocument(); $c = ElementHelper::getRepeatCounter($this); $conn = $c === false || $node->attributes('connection_in_repeat') == 'false' ? $node->attributes('connection') : $node->attributes('connection') . '-' . $c; $table = $node->attributes('table'); $include_calculations = (int) $node->attributes('include_calculations', 0); $published = (int) $node->attributes('published', 0); $showintable = (int) $node->attributes('showintable', 0); if ($include_calculations != 1) { $include_calculations = 0; } $cnns = array(JHTML::_('select.option', '-1', JText::_('COM_FABRIK_PLEASE_SELECT'))); $id = ElementHelper::getId($this, $control_name, $name); $fullName = ElementHelper::getFullName($this, $control_name, $name); $repeat = ElementHelper::getRepeat($this); if (!array_key_exists($id, $fabrikelements)) { $script = "window.addEvent('domready', function() {\n"; $opts = new stdClass(); $opts->table = $c === false ? 'params' . $table : 'params' . $table . "-" . $c; $opts->published = $published; $opts->showintable = $showintable; $opts->excludejoined = (int) $node->attributes('excludejoined', 0); $opts->livesite = COM_FABRIK_LIVESITE; $opts->conn = 'params' . $conn; $opts->value = $value; $opts->include_calculations = $include_calculations; $opts = FastJSON::encode($opts); $script .= "var p = new elementElement('{$id}', {$opts});\n"; $script .= "Fabrik.adminElements.set('{$id}', p);\n"; $script .= "});\n"; $document->addScriptDeclaration($script); $fabrikelements[$id] = true; } FabrikHelperHTML::cleanMootools(); $return = JHTML::_('select.genericlist', $cnns, $fullName, 'class="inputbox element"', 'value', 'text', $value, $id); $return .= '<img style="margin-left:10px;display:none" id="' . $id . '_loader" src="components/com_fabrik/images/ajax-loader.gif" alt="' . JText::_('LOADING') . '" />'; return $return; }
function fetchElement($name, $value, &$node, $control_name) { static $fabriktables; if (!isset($fabriktables)) { $fabriktables = array(); } FabrikHelperHTML::script('fabriktables.js', 'administrator/components/com_fabrik/elements/', true); $connectionDd = $node->attributes('observe', ''); $db =& JFactory::getDBO(); $document =& JFactory::getDocument(); $c = ElementHelper::getRepeatCounter($this); $repeat = ElementHelper::getRepeat($this); $id = ElementHelper::getId($this, $control_name, $name); $fullName = ElementHelper::getFullName($this, $control_name, $name); if ($connectionDd == '') { //we are not monitoring a connection drop down so load in all tables $query = "SELECT id AS value, label AS `{$name}` FROM #__fabrik_tables order by label ASC"; $db->setQuery($query); $rows = $db->loadObjectList(); } else { $rows = array(JHTML::_('select.option', '', JText::_('SELECT A CONNECTION FIRST'), 'value', $name)); } if ($connectionDd != '' && !array_key_exists($id, $fabriktables)) { $connectionDd = $c === false || $node->attributes('connection_in_repeat') == 'false' ? $connectionDd : $connectionDd . '-' . $c; $opts = new stdClass(); $opts->livesite = COM_FABRIK_LIVESITE; $opts->conn = 'params' . $connectionDd; $opts->value = $value; $opts->connInRepeat = $node->attributes('connection_in_repeat'); $opts = FastJSON::encode($opts); $script = "window.addEvent('domready', function() {\n"; $script .= "var p = new fabriktablesElement('{$id}', {$opts});\n"; $script .= "tableElements.set('{$id}', p);\n"; $script .= "Fabrik.adminElements.set('{$id}', p);\n"; $script .= "});\n"; $document->addScriptDeclaration($script); $fabriktables[$id] = true; } FabrikHelperHTML::cleanMootools(); $str = JHTML::_('select.genericlist', $rows, $fullName, 'class="inputbox fabriktables"', 'value', $name, $value, $id); $str .= "<img style=\"margin-left:10px;display:none\" id=\"" . $id . "_loader\" src=\"components/com_fabrik/images/ajax-loader.gif\" alt=\"" . JText::_('LOADING') . "\" />"; return $str; }
function fetchElement($name, $value, &$node, $control_name) { FabrikHelperHTML::script('tables.js', 'administrator/components/com_fabrik/elements/', true); $connectionDd = $node->attributes('observe', ''); $db =& JFactory::getDBO(); $document =& JFactory::getDocument(); $repeat = ElementHelper::getRepeat($this); $id = ElementHelper::getId($this, $control_name, $name); $fullName = ElementHelper::getFullName($this, $control_name, $name); $c = ElementHelper::getRepeatCounter($this); if ($connectionDd == '') { //we are not monitoring a connection drop down so load in all tables $query = "SHOW TABLES"; $db->setQuery($query); $list = $db->loadResultArray(); foreach ($list as $l) { $rows[] = JHTML::_('select.option', $l, $l); } } else { $rows = array(JHTML::_('select.option', '', JText::_('SELECT A CONNECTION FIRST'))); } if ($connectionDd != '') { $connectionDd = $c === false ? $connectionDd : $connectionDd . '-' . $c; $opts = new stdClass(); $opts->livesite = COM_FABRIK_LIVESITE; $opts->conn = 'params' . $connectionDd; $opts->value = $value; $opts = FastJSON::encode($opts); $script = "window.addEvent('domready', function() {\n"; $script .= "if(typeof(tableElements) === 'undefined') {\n\t\t\ttableElements = \$H();\n}\n"; $script .= "tableElements.set('{$id}', new tablesElement('{$id}', {$opts}));\n"; $script .= "});\n"; if ($script != '') { $document->addScriptDeclaration($script); } } FabrikHelperHTML::cleanMootools(); $str = JHTML::_('select.genericlist', $rows, $fullName, 'class="repeattable inputbox"', 'value', 'text', $value, $id); $str .= "<img style='margin-left:10px;display:none' id='" . $id . "_loader' src='components/com_fabrik/images/ajax-loader.gif' alt='" . JText::_('LOADING') . "' />"; return $str; }
function fetchElement($name, $value, &$node, $control_name) { //ONLY WORKS INSIDE ELEMENT :( $group_id = $this->_parent->get('group_id'); $query = "SELECT ordering AS value, name AS text" . "\n FROM #__fabrik_elements " . "\n WHERE group_id = '{$group_id}'" . "\n AND state >= 0" . "\n ORDER BY ordering"; $id = $this->_parent->get('id'); $fullName = ElementHelper::getFullName($this, $control_name, $name); $neworder = 0; if ($id) { $order = JHTML::_('list.genericordering', $query); $ordering = JHTML::_('select.genericlist', $order, $fullName, 'class="inputbox" size="1"', 'value', 'text', $value); } else { if ($neworder) { $text = JText::_('descNewItemsFirst'); } else { $text = JText::_('descNewItemsLast'); } $ordering = '<input type="hidden" name="' . $fullName . '" value="' . $value . '" />' . $text; } return $ordering; }
function getInput() { $connectionDd = $this->element['observe']; if ((int) $this->form->getValue('id') != 0 && $this->element['readonlyonedit']) { return '<input type="text" value="' . $this->value . '" class="readonly" name="' . $this->name . '" readonly="true" />'; } $c = ElementHelper::getRepeatCounter($this); $readOnlyOnEdit = $this->element['readonlyonedit']; if ($connectionDd != '') { $connectionDd = $c === false ? $connectionDd : $connectionDd . '-' . $c; $opts = new stdClass(); $opts->livesite = COM_FABRIK_LIVESITE; $opts->conn = 'jform_' . $connectionDd; $opts->value = $this->value; $opts = json_encode($opts); $script = "FabrikAdmin.model.fields.fabriktable['{$this->id}'] = new tablesElement('{$this->id}', {$opts});\n"; FabrikHelperHTML::script('administrator/components/com_fabrik/models/fields/tables.js', $script); } $html = parent::getInput(); $html .= "<img style='margin-left:10px;display:none' id='" . $this->id . "_loader' src='components/com_fabrik/images/ajax-loader.gif' alt='" . JText::_('LOADING') . "' />"; return $html; }